class TravelIndex{
	//成员变量
	String destination;//目的地
	String landmark;//标志性景点
	String deliciousFood;//美食
	int scoreOfView;//风景评分
	int scoreOfFood;//美食评分
	int recommendIndex;//推荐指数
	
	//构造方法
	TravelIndex(){}//无参
	TravelIndex(String destination,String landmark,String deliciousFood){//有参
		this.destination=destination;
		this.landmark=landmark;
		this.deliciousFood=deliciousFood;
	}
	
	//内部类 - 用于描述新冠疫情现状
	class COVID19Status{
		int cumulative;//累计确诊数
		int dead;//死亡人数
		int current;//现有确诊数
		int scoreOfSecuity;//安全性评分
			
		//设置新冠疫情现状
		void setCOVID19Status(int cum,int dead,int cur){
			cumulative=cum;
			this.dead=dead;
			current=cur;
		}
		
		//获取安全性评分 - 根据现有确诊数计算
		int getScoreOfSecuity() {
			if(current<=5000) //0-5,000为10分
				scoreOfSecuity=10;
			else if(current<=10000)//5,001-10,000为8分
				scoreOfSecuity=8;
			else if(current<=50000)//10,001-50,000为6分
				scoreOfSecuity=6;
			else if(current<=500000)//50,001-500,000为4分
				scoreOfSecuity=4;
			else if(current<=1000000)//500,001-1,000,000为2分
				scoreOfSecuity=2;
			else//大于1,000,000为0分
				scoreOfSecuity=0;
			return scoreOfSecuity;
		}
		
		//输出新冠疫情现状
		void getCOVID19Sstatus() {
			System.out.println(destination+"的新冠疫情现状如下：");
			System.out.println("累计确诊数："+cumulative+" 死亡人数："+dead+" 现有确诊数："+current);
			System.out.println("安全性评分为："+scoreOfSecuity);
		}
	}
	
	//计算旅行推荐指数 - 为由风景、美食、安全性三项评分的和得出。
	int computeTravelIndex(int scoreOfView,int scoreOfFood,int scoreOfSecuity) {
		this.scoreOfView=scoreOfView;
		this.scoreOfFood=scoreOfFood;
		recommendIndex=scoreOfView+scoreOfFood+scoreOfSecuity;
		return recommendIndex;
	}
	
	//获取该地旅行推荐指数及目的地信息
	void getTravelIndex() {
		System.out.println(destination+"的旅行推荐指数为："+recommendIndex);
		System.out.println("标志性景点为："+landmark+" 风景评分为："+scoreOfView);
		System.out.println("特色美食美术为："+deliciousFood+" 美食评分："+scoreOfFood);
	}
}
public class travelRecommend {

	public static void main(String[] args) {
		//用旅行推荐指数类实例化对象 - 中国
		TravelIndex China=new TravelIndex("China","the Imperial Palace","Chinese Food");//中国，故宫，中国菜
		//用内部类实例化对象 - 中国新冠疫情现状
		TravelIndex.COVID19Status ChineseStatus=China.new COVID19Status();
		//输入中国新冠疫情当前数据 - 截止至2021/10/16
		ChineseStatus.setCOVID19Status(125189, 5695, 2361);
		//计算中国安全性评分
		ChineseStatus.getScoreOfSecuity();
		//计算中国旅行推荐指数
		China.computeTravelIndex(9, 10,ChineseStatus.scoreOfSecuity);
		//输出中国旅行推荐指数
		China.getTravelIndex();
		//输出中国新冠疫情现状
		ChineseStatus.getCOVID19Sstatus();
		System.out.println();
		
		//日本
		TravelIndex Japan=new TravelIndex("Japan","Fujiyama","Sushi");//日本，富士山，寿司
		//用内部类实例化对象 - 日本新冠疫情现状
		TravelIndex.COVID19Status JapaneseStatus=Japan.new COVID19Status();
		//输入日本新冠疫情当前数据 - 截止至2021/10/16
		JapaneseStatus.setCOVID19Status(1713268, 18051, 9003);
		//计算日本安全性评分
		JapaneseStatus.getScoreOfSecuity();
		//计算日本旅行推荐指数
		Japan.computeTravelIndex(9, 9,JapaneseStatus.scoreOfSecuity);
		//输出日本旅行推荐指数
		Japan.getTravelIndex();
		//输出日本新冠疫情现状
		JapaneseStatus.getCOVID19Sstatus();
		System.out.println();
		
		//新加坡
		TravelIndex Singapore=new TravelIndex("Singapore","Merlion Park","Bak Kut Teh");//新加坡，鱼尾狮公园，肉骨茶
		//用内部类实例化对象 - 新加坡新冠疫情现状
		TravelIndex.COVID19Status SingaporeanStatus=Singapore.new COVID19Status();
		//输入新加坡新冠疫情当前数据 - 截止至2021/10/16
		SingaporeanStatus.setCOVID19Status(141772, 215, 26775);
		//计算新加坡安全性评分
		SingaporeanStatus.getScoreOfSecuity();
		//计算新加坡旅行推荐指数
		Singapore.computeTravelIndex(7, 8,SingaporeanStatus.scoreOfSecuity);
		//输出新加坡旅行推荐指数
		Singapore.getTravelIndex();
		//输出新加坡新冠疫情现状
		SingaporeanStatus.getCOVID19Sstatus();
		System.out.println();
		
		//俄罗斯
		TravelIndex Russia=new TravelIndex("Russia","the Kremlin","Patty");//俄罗斯，克里姆林宫，汉堡排
		//用内部类实例化对象 - 俄罗斯新冠疫情现状
		TravelIndex.COVID19Status RussianStatus=Russia.new COVID19Status();
		//输入俄罗斯新冠疫情当前数据 - 截止至2021/10/16
		RussianStatus.setCOVID19Status(7958384, 222315, 754162);
		//计算俄罗斯安全性评分
		RussianStatus.getScoreOfSecuity();
		//计算俄罗斯旅行推荐指数
		Russia.computeTravelIndex(9, 9,RussianStatus.scoreOfSecuity);
		//输出俄罗斯旅行推荐指数
		Russia.getTravelIndex();
		//输出俄罗斯新冠疫情现状
		RussianStatus.getCOVID19Sstatus();
		System.out.println();
		
		//英国
		TravelIndex Britain=new TravelIndex("Britain","Houses of Parliament","Welsh rarebit");//英国，国会大厦，威尔士干酪吐司
		//用内部类实例化对象 - 英国新冠疫情现状
		TravelIndex.COVID19Status BritishStatus=Britain.new COVID19Status();
		//输入英国新冠疫情当前数据 - 截止至2021/10/16
		BritishStatus.setCOVID19Status(8361651, 138648, 8198311);
		//计算英国安全性评分
		BritishStatus.getScoreOfSecuity();
		//计算英国旅行推荐指数
		Britain.computeTravelIndex(9, 9,BritishStatus.scoreOfSecuity);
		//输出英国旅行推荐指数
		Britain.getTravelIndex();
		//输出英国新冠疫情现状
		BritishStatus.getCOVID19Sstatus();
		System.out.println();
		
		//美国
		TravelIndex America=new TravelIndex("America","Statue of Liberty","Turducken");//美国，自由女神像，特大啃
		//用内部类实例化对象 - 美国新冠疫情现状
		TravelIndex.COVID19Status AmericanStatus=America.new COVID19Status();
		//输入美国新冠疫情当前数据 - 截止至2021/10/16
		AmericanStatus.setCOVID19Status(39668541, 654696, 8187367);
		//计算美国安全性评分
		AmericanStatus.getScoreOfSecuity();
		//计算美国旅行推荐指数
		America.computeTravelIndex(9, 8,AmericanStatus.scoreOfSecuity);
		//输出美国旅行推荐指数
		America.getTravelIndex();
		//输出美国新冠疫情现状
		AmericanStatus.getCOVID19Sstatus();
		System.out.println();
	}

}
